/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	BBaseEntityReader.java
 * 模块说明：	
 * 修改历史：
 * Nov 28, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.base.server.biz;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.gwt.base.client.biz.BBaseEntity;
import com.hd123.rumba.gwt.base.client.biz.BPersistent;
import com.hd123.rumba.gwt.base.client.biz.SDomain;
import com.hd123.rumba.gwt.base.client.exception.ClientBizException;
import com.hd123.rumba.runtime.IBaseEntity;
import com.hd123.rumba.runtime.IPersistent;

/**
 * 实体基类 | 业务层 | 阅读器
 * 
 * @author lxm
 * 
 */
public class BBaseEntityReader extends BVersionedPersistentReader {

  public void read(IPersistent source) throws BusinessException {
    super.read(source);
    if (source instanceof IBaseEntity)
      try {
        BBaseEntity biz = getTarget();
        IBaseEntity perz = (IBaseEntity) source;
        biz.setDomain(readObject(perz.getDomain(), SDomain.class));
        biz.setLastModifier(perz.getLastModifier());
        biz.setState(perz.getState());
      } catch (ClientBizException e) {
        throw new BusinessException(e);
      }
  }

  public BBaseEntity getTarget() {
    BPersistent target = super.getTarget();
    return (BBaseEntity) target;
  }

  public void setTarget(BPersistent target) {
    super.setTarget((BBaseEntity) target);
  }

}
